﻿using System;
namespace MushManager.DAL
{
	public interface IDALEngine
	{
		void AddParameter(DALParameter param);
		bool CanClose { get; set; }
		void ClearParameters();
		void Close();
		string ConnectionString { get; set; }
		void DeleteObject(int keyValue, Type objType);
		void Dispose();
		System.Data.IDataReader ExecQuery_DataReader(string query, System.Data.CommandBehavior behavior);
		System.Data.IDataReader ExecQuery_DataReader(string query);
		void ExecQuery_DataSet(string query, System.Data.DataSet dataSet, string tableName);
		int ExecQuery_NonQuery(string query);
		object ExecQuery_Scalar(string query);
		System.Data.IDataReader ExecSP_DataReader(string spName);
		System.Data.IDataReader ExecSP_DataReader(string spName, System.Data.CommandBehavior behavior);
		void ExecSP_DataSet(string spName, System.Data.DataSet dataSet, string tableName);
		int ExecSP_NonQuery(string spName);
		object ExecSP_Scalar(string spName);
		DALParameter GetParameter(string name);
		int RetrieveChildObjects(object foreignKeyValue, System.Collections.Generic.List<object> objects, Type parentType, Type childType);
		object RetrieveObject(object keyValue, Type objType);
		int UpdateObject(object o);
		void UpdateObjects(System.Collections.IEnumerable enumObjects);
	}
}
